<?php
/**
*  算法规则见 http://cswei.blog.51cto.com/3443978/1584329
*  本例子以16位编号为例子，用PHP予以实现，代码如下：
**/
/* 测试用例，最后一位为校验码
4404021110060840
4404001310083095
4404021150062404
*/
    $m = '';
    $str = '440400131008309';
    $str.= 'a';

    function p($str,$n)
    {
        if ($n == 1)
        {
            return 10;
        }
        else
        {
            $num = $str[$n-2];
            $s = p($str,$n-1)%11 + $num;
            return ($s%10==0?10:$s%10)*2; 
        }
    }
 
    $p = p($str,16);
    for($i=0;$i<10;$i++){
        if (($p%11 + $i)%10 == 1){
            $m = $i;
            break;
        }
    }
    echo $m;
    ?>
